home *** CD-ROM | disk | FTP | other *** search
- QuickROM
-
- Synopsis: remaps Kickstart to FAST RAM, using 68060 or 68040 MMU
-
- $VER: QuickROM v36.08 (21-May-1998) by Simon N Goodwin
-
- This makes operating system code much faster by making a copy of
- Kickstart - the built-in part of the Amiga's operating system -
- in fast memory. It does this dynamically and can be activated or
- deactivated at any time.
-
-
- HISTORY
-
- Version 36.07: first Aminet release.
-
- Thanks to the following users for their comments:
-
- Dave Wright <centaur@dm.net>
- Gary Goldberg <GaryG@ix.netcom.com>
- Ingo Musquinier <Ingo@night.de>
- Guillaume Ubbelohde <950947@mercure.umh.ac.be>
- Michael Lewis <madlew@silyn-tek.de>
- Frank Papaeliou <frank@poky.srv.net>
- Daryl Holley <dholley@pcisys.net>
-
- Feedback of any kind is much appreciated, and helps
- to ensure the development and updating of QuickROM.
-
- Version 37.08 second Aminet release.
-
- New version added for use from a Workbench icon or WBStartup.
- Documentation improved to indicate installation options.
-
-
- INSTALLATION
-
- There is no need to install QuickROM in your startup because it
- can be run at almost any time. However experience has shown that
- many users want the speed benefit as soon as they turn on their
- Amiga, or soon thereafter, so they choose to include it in their
- startup. You can add QuickROM to your startup in three places:
-
- (1) User-Startup - this is the conventional place to put such
- a system extension. Simply put the QuickROM program in the
- C: directory on your boot disk, and add the command:
-
- C:QuickROM
-
- anywhere in the file S:User-Startup. The advantage of having
- it at the start is that it speeds up subsequent execution of
- commands in your startup sequence. The disadvantage is that
- you lose 516K of memory (which can be reclaimed) early on.
-
- (2) WBStartup - simply drag the icon named QuickROM_WB into the
- WBStartup drawer on your boot disk, and QuickROM will run
- automatically.
-
- (3) Startup-Sequence - strictly speaking Amiga users should not
- modify any of the contents of S:Startup-Sequence - the file
- S:User-Startup was introduced with Workbench 2.0 to reduce
- the problems often caused by a messed up startup-sequence.
- But some programs - like Shapeshifter, Fusion or OxyPatcher
- - require you to add commands to Startup-Sequence, and you
- may want to include QuickROM in that file so that it speeds
- up all subsequent startup commands in that file, as well as
- those in User-Startup and WBStartup, which run later. It is
- assumed that you have copied the command to
-
- If you decide to ignore the advice of Commodore and alter
- your startup-sequence, the QuickROM command should be added
- after the line starting with the SetPatch command. There is
- little point in putting it before commands that restart the
- system (OpenOxyPort, RsrvWarm, PrepareEmul etc) as it will
- have to be done again at every reset and will not be loaded
- for long enough to make a significant difference, the first
- few times.
-
- This startup-sequence has been successfully used to set up
- Fusion, OxyPatcher, QuickROM and Quantum on an A4000/060:
-
- RsrvCold -e >NIL: ; For Fusion
- c:openoxypport ; For OxyPatcher
- SetPatch QUIET
- C:QuickROM
- QUANTUM 1 >NIL:
-
- The rest of the normal startup-sequence follows hereafter.
-
-
- REMOVAL
-
- Whatever way you start QuickROM, you can stop it (or start it
- again) by issuing another QuickROM command from a shell, Arexx
- or Directory Opus (etc), clicking on the QuickROM_WB icon, or
- rebooting the system.
-
-
- COMPATIBILITY
-
- QuickROM was written and tested on a Mark 2 Cyberstorm 68060, more
- than doubling the speed of access to Kickstart code. It has also
- been tested on GVP's G-FORCE 68060 (A2000, A3000 or A4000 versions),
- Commodore's 3640 A4000/040 card (where it helps a bit, but hampered
- by its very slow 'fast' RAM interface) MacroSystem's Warp Engine
- 68040/33 and a Cyberstorm Mark 1, which is even faster than the
- Mark 2. Nic Wilson's KickSpeed tester (from Set040) reads ROM 2.4
- times faster on Mark 1 Cyberstorm hardware after running QuickROM.
- The advantage is almost as great on Mark 2, and can be even more
- on a Mark 3 (PPC or 060), Warp Engine or GVP accelerator. For the
- most advantage - up to 30 times or more in some cofigurations - run
- it on a 16 bit Amiga (e.g. A2000) with a Zorro-based 68040 or 68060
- accelerator. The relocation will also boost the speed of access to
- chip RAM, custom chips and other Zorro cards in this case, as it
- eliminates many potentially contentious accesses to slow 16 bit
- motherboard resources - eliminating 16 bit ROM accesses leaves
- more time for everything else in the 24 bit address space. If you
- try it on any system not listed above, or encounter any results
- which you do not expect after reading this documentation, please
- contact the author with details by email: simon@studio.woden.com
-
-
- COMPARISONS
-
- QuickROM is not the first such program - it follows in the path of
- the shareware Set040, written before Amiga OS made use of the MMU,
- and Commodore's developer-only MAPROM (which uses special mapping
- hardware) and later commercially-bundled commands like KSREMAP,
- WARPKICK and ROM2FAST, but it is free, concise, more compatible
- and has features which some others lack.
-
-
- ADVANTAGES
-
- The advantages of QuickROM over the proprietary versions are:
-
- * Freely distributable, with full assembly language source code
- and copious comments explaining its strengths and weaknesses.
-
- * Allocates RAM from the top of memory to minimise fragmentation.
-
- * Allows de-allocation as well as allocation, freeing 516K memory.
-
- * Full diagnostic Exec result codes for cases when it can't work.
-
- * Does not use undocumented 68060.library hooks, so it should work
- fine on any other 68060 or 68040 system with an MMU, unlike some.
-
- * Works with 1 Mb ROMs as well as Commodore 512K ones, and uses the
- documented method to find the ROM size, so it should suit other
- sizes too, as long as they're in the first 32 Mb of address space
- (likely as the MAGIC_ROM_SIZE needs to be at address 16 Mb - 20).
-
-
- LIMITATIONS
-
- * Requires an MMU, and won't work with old 68030, 68451 or 68851 ones.
- There are already plenty of Kickstart re-mappers for those systems.
-
- * May get confused in the MMU table setup or ROM location is radically
- changed in some future Amiga. This program is inevitably architecture-
- and processor-specific, although I've tried to make it fairly flexible.
-
- * No messages. Check the return code to find out EXACTLY what happened.
-
- * Only remaps the current Kickstart - no provision to change to another
- version (e.g. a developer Kickstart on disk). This is deliberate, as
- (1) changing Kickstart on a running system would require a reset and
- QuickROM is designed to let you turn it on or off at any time while
- the system continues to work normally (2) as a former Certified Amiga
- developer, the author does not condone or encourage the theft of test
- versions of the Kickstart software.
-
-
- ERROR CODES
-
- Type SET after the QuickROM command to see the return code (RC).
-
- 0 indicates success. Other values indicate failure and the reason why.
-
- 20 indicates that Kickstart has already been remapped by some other
- program. QuickROM takes no action in this case, or others below.
-
- 22 signifies that there is not enough fast memory in one piece for the
- ROM image and associated data. QuickROM requires a contiguous 516K.
-
- 24 indicates that the MMU is using 8K pages. QuickROM expects 4K pages,
- for compatibility with Setpatch, Enforcer, Cyberguard and other MMU
- programs. The source file includes untested code for 8K page support.
-
- 26 indicates that the MMU is not enabled. This may mean that it is not
- available in silicon (e.g. on an EC040 or EC060 processor. These
- configurations have not been supplied as standard in any Amiga to
- date, but they do work (without the MMU_) fr instance I've got a
- C= 3640 with an EC040 on it, having moved the original XC040 to a
- Warp Engine.
-
- 28 indicates that the MMU has not been initialised. Normally this is a
- function of SetPatch (except early versions) in conjunction with the
- 68040 or 68060 library. Enforcer also sets up MMU tables if they do
- not already exist.
-
- 30 indicates that the processor is too old, i.e. not a 68040 or 68060!
-